package pda.ancien;

import java.awt.*;
import javax.swing.*;
import java.io.*;

/**
 * <h1>Classe ImagePanel.</h1>
 * Classe qui herite de JPanel et implémente Serializable.
 * Elle permet de créer un nouveau JPanel avec une image de fond. Il suffira d'utiliser le constructeur de cette classe
 * qui prend en paramètre une image pour l'ajouter.
 * @author Mathieu Cornic
 * @author Camille Guerin
 * A rendre Jeudi 19 juin 2008
 */
public class ImagePanel extends JPanel implements Serializable {

    private static final long serialVersionUID = 1L;//numero de version de la classe
	
    Image image = null;//on initialise l'image à null;
  
    /**
     * Constructeur de la classe qui prend en parametre une image
     * @param image image a mettre en background
     */
    public ImagePanel (Image image) {
        this.image = image;
    }
    
    /**
     * Constructeur par defaut. Si aucun parametre n'est défini, le panel sera un JPanel par defaut
     */
    public ImagePanel () {

    }
    
    /**
     * Getter qui renvoit l'image du panel
     * @return l'image utilisée dans le panel
     */
    public Image getImage () {

        return image;
    }
    
    /**
     * Setter qui remplace la nouvelle image du panel par celle passee en parametre
     * @param image la nouvelle image
     */
    public void setImage (Image image) {

        this.image = image;
    }   

    /**
     * Methode redefinie. Elle permet de peindre un composant
     * @param g le composant à peindre
     */
    public void paintComponent (Graphics g) {

        super.paintComponent (g); //peinture du background
        
        if (image != null) { 
	    //Si l'image a ete initialisée, alors la peindre
            int hauteur = this.getSize ().height;//on recupere la hauteur du panel
            int largeur = this.getSize ().width; //on recupere la largeur du panel       

            g.drawImage (image,0,0, largeur, hauteur, this);//on dessine l'image en fonction de la largeur et de la hauteur
        }
    }
}
